/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package czStvDpds.input;

import java.util.ArrayList;

/**
 *
 * @author divad
 */
public interface InputHandler {

    /**
     * Přidá listener do seznamu posluchačů klaves.
     *
     * @param listener
     * @see LWJGLKeyListener
     */
    public void addLWJGLKeyListener(LWJGLKeyListener listener);

    /**
     * odebere listener ze seznamu posluchačů klaves
     *
     * @param listener
     * @see LWJGLKeyListener
     */
    public void removeLWJGLKeyListener(LWJGLKeyListener listener);

    /**
     * vrátí pole předaných posluchačů klaves
     *
     * @return
     * @see LWJGLKeyListener
     */
    public ArrayList<LWJGLKeyListener> getLWJGLKeyListeners();

    /**
     * Přidá listener do seznamu posluchačů mysi.
     *
     * @param listener
     * @see LWJGLMouseListener
     */
    public void addLWJGLMouseListener(LWJGLMouseListener listener);

    /**
     * odebere listener ze seznamu posluchačů mysi
     *
     * @param listener
     * @see LWJGLMouseListener
     */
    public void removeLWJGLMouseListener(LWJGLMouseListener listener);

    /**
     * vrátí pole předaných posluchačů mysi
     *
     * @return
     * @see LWJGLMouseListener
     */
    public ArrayList<LWJGLMouseListener> getLWJGLMouseListeners();

    /**
     * Zapne/vypne permanentní proud eventů o stiscích kláves.
     *
     * @param enable
     */
    public void setRepeatEvents(boolean enable);

    /**
     * Vrací true, pokud je zapnutý permanentí prou eventů o stiscích kláves.
     *
     * @return
     */
    public boolean areRepeatEvents();
}
